From 7fa4d60bf3408d7c773fe8e84f6e610324e15bf9 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 10 Jul 2014 10:11:10 -0400 Subject: [PATCH] inspector: Add a switch for simulating touch This makes it easy to test test touchscreen features with a plain old mouse. --- gtk/inspector/general.c | 26 +++++++++++++++++++++++++ gtk/inspector/general.ui | 41 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c index 29fcf970dd..ae8b2d75ef 100644 --- a/gtk/inspector/general.c +++ b/gtk/inspector/general.c @@ -51,6 +51,7 @@ struct _GtkInspectorGeneralPrivate GtkWidget *gtk_path; GtkWidget *gtk_exe_prefix; GtkWidget *gtk_data_prefix; + GtkWidget *touchscreen_switch; }; G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorGeneral, gtk_inspector_general, GTK_TYPE_BOX) @@ -135,6 +136,29 @@ init_env (GtkInspectorGeneral *gen) set_path_label (gen->priv->gtk_data_prefix, "GTK_DATA_PREFIX"); } +static void +update_touchscreen (GtkSwitch *sw, GParamSpec *pspec, GtkInspectorGeneral *gen) +{ + GtkDebugFlag flags; + + flags = gtk_get_debug_flags (); + + if (gtk_switch_get_active (sw)) + flags |= GTK_DEBUG_TOUCHSCREEN; + else + flags &= ~GTK_DEBUG_TOUCHSCREEN; + + gtk_set_debug_flags (flags); +} + +static void +init_touch (GtkInspectorGeneral *gen) +{ + gtk_switch_set_active (GTK_SWITCH (gen->priv->touchscreen_switch), (gtk_get_debug_flags () & GTK_DEBUG_TOUCHSCREEN) != 0); + g_signal_connect (gen->priv->touchscreen_switch, "notify::active", + G_CALLBACK (update_touchscreen), gen); +} + static void gtk_inspector_general_init (GtkInspectorGeneral *gen) { @@ -142,6 +166,7 @@ gtk_inspector_general_init (GtkInspectorGeneral *gen) gtk_widget_init_template (GTK_WIDGET (gen)); init_version (gen); init_env (gen); + init_touch (gen); } static void @@ -158,6 +183,7 @@ gtk_inspector_general_class_init (GtkInspectorGeneralClass *klass) gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gtk_path); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gtk_exe_prefix); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, gtk_data_prefix); + gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorGeneral, touchscreen_switch); } // vim: set et sw=2 ts=2: diff --git a/gtk/inspector/general.ui b/gtk/inspector/general.ui index 44ee02f0d6..1f7ef9d7ad 100644 --- a/gtk/inspector/general.ui +++ b/gtk/inspector/general.ui @@ -250,6 +250,45 @@ + + + True + center + + + True + none + + + True + horizontal + 10 + 40 + + + True + Simulate touchscreen + start + baseline + 0.0 + + + + + True + end + baseline + + + True + + + + + + + + horizontal @@ -262,6 +301,7 @@ + @@ -269,6 +309,7 @@ + -- 2.30.2